home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jaz_clib.arc / BADSECT.DMO < prev    next >
Text File  |  1989-04-09  |  1KB  |  43 lines

  1. /*
  2. ┌────────────────────────────────────────────────────────────────────────────┐
  3. │badsect.dmo                                     │
  4. │Display bad sectors on a given disk.                         │
  5. │                                         │
  6. │ (C) JazSoft Software by Jack A. Zucker (301) 794-5950              │
  7. └────────────────────────────────────────────────────────────────────────────┘
  8. */
  9.  
  10. #include <jaz.h>
  11. main()
  12. {
  13.   badsect(0);
  14. }
  15.  
  16. badsect(fdisk)
  17. int fdisk;
  18. {
  19.   #define BLKSIZE 32
  20.   TDISKBLK wdisk;
  21.   unsigned int wpartitions,wleftover;
  22.   register w,w2;
  23.   int werr;
  24.   char *wbuf,*malloc();
  25.  
  26.   diskinfo(fdisk,&wdisk);
  27.  
  28.   wbuf = malloc(wdisk.bytes * BLKSIZE);    /* 32 sector blocks       */
  29.  
  30.   wpartitions = wdisk.ttlsect / BLKSIZE;   /* find total 32 sector partitions */
  31.  
  32.   wleftover   = wdisk.ttlsect % BLKSIZE;   /* find remaining sectors          */
  33.  
  34.   for (w = 0 ; w < wpartitions ; w ++ )     /* search through partition */
  35.     if (dosreads(fdisk,w*BLKSIZE,BLKSIZE,wbuf)) /* if error in partition    */
  36.       for (w2 = 0 ; w2 < BLKSIZE ; w2 ++)    /* search by sector        */
  37.     if (dosreads(fdisk,w2+w*BLKSIZE,1,wbuf))
  38.       printf("%0004X    ",w2+w*BLKSIZE);
  39.  
  40.   if (dosreads(fdisk,wpartitions*BLKSIZE,wleftover,wbuf)) /* search leftovers */
  41.     printf("%0004X    ",w*BLKSIZE);
  42. }
  43.